package pe.tnova.cliente.proyecto.core.daobase;

import org.springframework.stereotype.Repository;

import pe.tnova.cliente.proyecto.core.daobase.impl.ParametroDAOBase;
import pe.tnova.cliente.proyecto.core.dominio.Parametro;
import pe.tnova.core.db.DAO;

@Repository("ParametroDAOBase")
public class ParametroDAOBaseImpl extends DAO<Parametro>  implements ParametroDAOBase{


//	public List getQuery(String sqlQuery, Map<String, Object> map) throws Exception {
//		Query q = em.createQuery(sqlQuery);
//		for (Entry<String, Object> entry : map.entrySet()) {
//			System.out.println(entry.getKey() + "/" + entry.getValue());
//			q.setParameter(entry.getKey(), entry.getValue());
//		}
//		return q.getResultList();
//	}
//
//	public Object getSingleQuery(String sqlQuery, Map<String, Object> map) throws Exception {
//		Query q = em.createQuery(sqlQuery);
//		for (Entry<String, Object> entry : map.entrySet()) {
//			System.out.println(entry.getKey() + "/" + entry.getValue());
//			q.setParameter(entry.getKey(), entry.getValue());
//		}
//		return q.getSingleResult();
//	}
//
//	public static Map<String, Object> getNewMap() {
//		return new HashMap<String, Object>();
//	}
//
//	public List<Parametro> getListaParametroByActivo(Boolean activo, String campoOrder, String order) throws Exception {
//		Map map = getNewMap();
//		map.put("activo", activo);
//		String query = " select p from Parametro p  where p.activo = :activo  ";
//		if ((campoOrder != null) && (!campoOrder.equals("")) && (campoOrder.length() > 0)) {
//			query += " order by " + campoOrder + " " + order;
//		}
//		query += " ; ";
//		List<Parametro> p = getQuery(query, map);
//		if (p != null) {
//			return p;
//		} else {
//			throw new Exception("No hay regsitros.");
//		}
//	}
//
//	public Integer countParametroByActivo(Boolean activo) throws Exception {
//		Map map = getNewMap();
//		map.put("activo", activo);
//		String query = " select count(p) from Parametro p  where p.activo = :activo ; ";
//		Integer p = (Integer) getSingleQuery(query, map);
//		return p;
//	}
//
//	public List<Parametro> getListaParametroBetweenFechaRegistro(Date fechaRegistroInicio, Date fechaRegistroFin, String campoOrder, String order) throws Exception {
//		Map map = getNewMap();
//		map.put("fechaRegistroInicio", fechaRegistroInicio);
//		map.put("fechaRegistroFin", fechaRegistroFin);
//		String query = " select p from Parametro p  where p.fechaRegistro between :fechaRegistroInicio and fechaRegistroFin  ";
//		if ((campoOrder != null) && (!campoOrder.equals("")) && (campoOrder.length() > 0)) {
//			query += " order by " + campoOrder + " " + order;
//		}
//		query += " ; ";
//		List<Parametro> p = getQuery(query, map);
//		if (p != null) {
//			return p;
//		} else {
//			throw new Exception("No hay regsitros.");
//		}
//	}
//
//	public Integer countParametroBetweenFechaRegistro(Date fechaRegistroInicio, Date fechaRegistroFin) throws Exception {
//		Map map = getNewMap();
//		map.put("fechaRegistroInicio", fechaRegistroInicio);
//		map.put("fechaRegistroFin", fechaRegistroFin);
//		String query = " select count(p) from Parametro p  where p.fechaRegistro between :fechaRegistroInicio and fechaRegistroFin ; ";
//		Integer p = (Integer) getSingleQuery(query, map);
//		return p;
//	}
//
//	public List<Parametro> getListaParametroBetweenFechaActualizada(Date fechaActualizadaInicio, Date fechaActualizadaFin, String campoOrder, String order) throws Exception {
//		Map map = getNewMap();
//		map.put("fechaActualizadaInicio", fechaActualizadaInicio);
//		map.put("fechaActualizadaFin", fechaActualizadaFin);
//		String query = " select p from Parametro p  where p.fechaActualizada between :fechaActualizadaInicio and fechaActualizadaFin  ";
//		if ((campoOrder != null) && (!campoOrder.equals("")) && (campoOrder.length() > 0)) {
//			query += " order by " + campoOrder + " " + order;
//		}
//		query += " ; ";
//		List<Parametro> p = getQuery(query, map);
//		if (p != null) {
//			return p;
//		} else {
//			throw new Exception("No hay regsitros.");
//		}
//	}
//
//	public Integer countParametroBetweenFechaActualizada(Date fechaActualizadaInicio, Date fechaActualizadaFin) throws Exception {
//		Map map = getNewMap();
//		map.put("fechaActualizadaInicio", fechaActualizadaInicio);
//		map.put("fechaActualizadaFin", fechaActualizadaFin);
//		String query = " select count(p) from Parametro p  where p.fechaActualizada between :fechaActualizadaInicio and fechaActualizadaFin ; ";
//		Integer p = (Integer) getSingleQuery(query, map);
//		return p;
//	}
//
//	public List<Parametro> getListaParametroLikeCodigoUsuario(String codigoUsuario, String campoOrder, String order) throws Exception {
//		Map map = getNewMap();
//		map.put("codigoUsuario", "%" + codigoUsuario + "%");
//		String query = " select p from Parametro p  where p.codigoUsuario like :codigoUsuario  ";
//		if ((campoOrder != null) && (!campoOrder.equals("")) && (campoOrder.length() > 0)) {
//			query += " order by " + campoOrder + " " + order;
//		}
//		query += " ; ";
//		List<Parametro> p = getQuery(query, map);
//		if (p != null) {
//			return p;
//		} else {
//			throw new Exception("No hay regsitros.");
//		}
//	}
//
//	public Integer countParametroLikeCodigoUsuario(String codigoUsuario) throws Exception {
//		Map map = getNewMap();
//		map.put("codigoUsuario", "%" + codigoUsuario + "%");
//		String query = " select count(p) from Parametro p  where p.codigoUsuario like :codigoUsuario ; ";
//		Integer p = (Integer) getSingleQuery(query, map);
//		return p;
//	}
//
//	public List<Parametro> getListaParametroByParametroPadre(Object parametroPadre, String campoOrder, String order) throws Exception {
//		Map map = getNewMap();
//		map.put("parametroPadre", parametroPadre);
//		String query = " select p from Parametro p  where p.parametroPadre = :parametroPadre  ";
//		if ((campoOrder != null) && (!campoOrder.equals("")) && (campoOrder.length() > 0)) {
//			query += " order by " + campoOrder + " " + order;
//		}
//		query += " ; ";
//		List<Parametro> p = getQuery(query, map);
//		if (p != null) {
//			return p;
//		} else {
//			throw new Exception("No hay regsitros.");
//		}
//	}
//
//	public Integer countParametroByParametroPadre(Object parametroPadre) throws Exception {
//		Map map = getNewMap();
//		map.put("parametroPadre", parametroPadre);
//		String query = " select count(p) from Parametro p  where p.parametroPadre = :parametroPadre ; ";
//		Integer p = (Integer) getSingleQuery(query, map);
//		return p;
//	}
//
//	public List<Parametro> getListaParametroLikeNombre(String nombre, String campoOrder, String order) throws Exception {
//		Map map = getNewMap();
//		map.put("nombre", "%" + nombre + "%");
//		String query = " select p from Parametro p  where p.nombre like :nombre  ";
//		if ((campoOrder != null) && (!campoOrder.equals("")) && (campoOrder.length() > 0)) {
//			query += " order by " + campoOrder + " " + order;
//		}
//		query += " ; ";
//		List<Parametro> p = getQuery(query, map);
//		if (p != null) {
//			return p;
//		} else {
//			throw new Exception("No hay regsitros.");
//		}
//	}
//
//	public Integer countParametroLikeNombre(String nombre) throws Exception {
//		Map map = getNewMap();
//		map.put("nombre", "%" + nombre + "%");
//		String query = " select count(p) from Parametro p  where p.nombre like :nombre ; ";
//		Integer p = (Integer) getSingleQuery(query, map);
//		return p;
//	}
//
//	public List<Parametro> getListaParametroLikeValue(String value, String campoOrder, String order) throws Exception {
//		Map map = getNewMap();
//		map.put("value", "%" + value + "%");
//		String query = " select p from Parametro p  where p.value like :value  ";
//		if ((campoOrder != null) && (!campoOrder.equals("")) && (campoOrder.length() > 0)) {
//			query += " order by " + campoOrder + " " + order;
//		}
//		query += " ; ";
//		List<Parametro> p = getQuery(query, map);
//		if (p != null) {
//			return p;
//		} else {
//			throw new Exception("No hay regsitros.");
//		}
//	}
//
//	public Integer countParametroLikeValue(String value) throws Exception {
//		Map map = getNewMap();
//		map.put("value", "%" + value + "%");
//		String query = " select count(p) from Parametro p  where p.value like :value ; ";
//		Integer p = (Integer) getSingleQuery(query, map);
//		return p;
//	}
}